﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using CuaHangMayTinh.Utilities;
using DevComponents.DotNetBar.Controls;

namespace CuaHangMayTinh.PresentationLayer
{
    /// <summary>
    /// hiên thị chi tiết tìm kiếm thông tin mặt hàng
    /// </summary>
    public partial class FormMatHangTimKiem : Form
    {
        /// <summary>
        /// tables chua thông tin cần tìm kiếm
        /// </summary>
        public DataTable Table { get; set; }

        /// <summary>
        /// enum kiểu muốn tìm kiếm
        /// </summary>
        enum KieuTimKiem
        {
            Tên,
            Tên_model_mặt_hàng,
            Loại_mặt_hàng
        }


        /// <summary>
        /// phương thức khởi tạo form tìm kiếm mặt hàng
        /// </summary>
        /// <param name="dt"></param>
        public FormMatHangTimKiem(DataTable dt)
        {
            InitializeComponent();
            Table = DataUtil.ChangeColumn(dt);
            LoadListView(Table);
        }

        /// <summary>
        /// sự kiện load form
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FormMatHangTimKiem_Load(object sender, EventArgs e)
        {
            toolStripcbb_kieutim.ComboBox.DataSource = Enum.GetValues(typeof(KieuTimKiem));
        }

        /// <summary>
        /// sự kiện đổi datasouce
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridViewX_Select_DataSourceChanged(object sender, EventArgs e)
        {
            DataGridViewX dt = (sender as DataGridViewX);
            if (dt.Columns.Count > 0)
            {
                dt.Columns[0].Visible = false;
            }
        }

        /// <summary>
        /// sự kiện thay đổi text của textbox 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void toolStripTextBox_serchkey_TextChanged(object sender, EventArgs e)
        {
            string text = (sender as ToolStripTextBox).Text;
            int kieu = (int)Enum.Parse(typeof(KieuTimKiem), toolStripcbb_kieutim.SelectedItem.ToString());
            DataTable dt = new DataTable();
            switch (kieu)
            {
                case 0:
                    ///tim theo ten
                    dt = DataUtil.TimkiemTheo(Table, "Serial_Code", text);
                    break;
                case 1:
                    //tim theo Tên_model_mặt_hàng
                    dt = DataUtil.TimkiemTheo(Table, "Model", text);
                    break;
                case 2:
                    //tim theo Loại_mặt_hàng
                    dt = DataUtil.TimkiemTheo(Table, "Tên loại mặt hàng", text);
                    break;
                default:
                    break;
            }
            LoadListView(dt);
        }

        private void LoadListView(DataTable dt)
        {
            if (dt != null&&dt.Rows.Count>0)
            {
                dataGridViewX_Select.DataSource = dt;
                if (dataGridViewX_Select.Columns.Contains(dataGridViewX_Select.Columns["T Trạng"]))
                {
                    dt.Columns.Add("T Trạng", typeof(string));
                    var t = dt.AsEnumerable().Where(x => x.Field<int>("Tình trạng") == 0);
                    foreach (var dataRow in t)
                    {
                        dataRow["T Trạng"] = "Đang trong kho";
                    }
                    var t1 = dt.AsEnumerable().Where(x => x.Field<int>("Tình trạng") == 1);
                    foreach (var dataRow in t1)
                    {
                        dataRow["T Trạng"] = "Đã bán";
                    }
                    var t2 = dt.AsEnumerable().Where(x => x.Field<int>("Tình trạng") == 2);
                    foreach (var dataRow in t2)
                    {
                        dataRow["T Trạng"] = "Đang bảo hành";
                    }
                    var t3 = dt.AsEnumerable().Where(x => x.Field<int>("Tình trạng") == 3);
                    foreach (var dataRow in t3)
                    {
                        dataRow["T Trạng"] = "Bị lỗi";
                    }
                    var t4 = dt.AsEnumerable().Where(x => x.Field<int>("Tình trạng") == 4);
                    foreach (var dataRow in t4)
                    {
                        dataRow["T Trạng"] = "Đã trả hàng";
                    }
                }
                dataGridViewX_Select.Columns["Tình trạng"].Visible = false;
                dataGridViewX_Select.Columns[0].Visible = false;
            }
        }


    }
}
